<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<link rel="stylesheet" href="./../assets/css/combined.css">
	<link rel="shortcut icon" href="./../favicon.ico" />
	<script src="http://www.google.com/jsapi" type="text/javascript"></script>
	<script type="text/javascript">
		var path = './../';
		var class_prefix = "View::";
	</script>
	<script src="./../assets/js/combined.js"></script>
	<title>View - Classes - FuelPHP Documentation</title>
</head>
<body>
	<div id="container">
		<header id="header">
			<div class="table">
				<h1>
					<strong>FuelPHP, a PHP 5.3 Framework</strong>
					Documentation
				</h1>

				<form id="google_search">
					<p>
						<span id="search_clear">&nbsp;</span>
						<input type="submit" name="search_submit" id="search_submit" value="search" />
						<input type="text" value="" id="search_input" name="search_input" />
					</p>
				</form>
			</div>
			<nav>

				<div class="clear"></div>
			</nav>
			<a href="#" id="toc_handle">table of contents</a>
			<div class="clear"></div>
		</header>

		<div id="cse">
			<div id="cse_point"></div>
			<div id="cse_content"></div>
		</div>

		<div id="main">

			<h2>View Class</h2>

			<p>
				The View class acts as an object wrapper for HTML pages with embedded PHP, called "views".
				Variables can be assigned with the view object and referenced locally within the view.
			</p>

			<p>
				<a href="../general/views.html">Read more about using views.</a>
			</p>

			<article>
				<h4 class="method" id="method_construct">__construct($file = null, $data = null, $filter = null)</h4>
				<table class="method">
					<tbody>
						<tr>
							<th>Static</th>
							<td>No</td>
						</tr>
						<tr>
							<th>Parameters</th>
							<td>
								<table class="parameters">
									<tr>
										<th>Param</th>
										<th>Default</th>
										<th class="description">Description</th>
									</tr>
									<tr>
										<th><kbd>$file</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">the view filename, if not supplied you must supply it later through <em>set_filename</em> or supply it in <em>render</em>. View files should be relative to the <em>app/views</em> directory.</td>
									</tr>
									<tr>
										<th><kbd>$data</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">array of values</td>
									</tr>
									<tr>
										<th><kbd>$filter</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">set to <em>true</em> or <em>false</em> to set auto encoding, defaults to main config setting (app/config/config.php)</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<th>Returns</th>
							<td>a new <em>View</em> object</td>
						</tr>
						<tr>
							<th>Example</th>
							<td>
								<pre class="php"><code>$view = new View('path/to/view', array(
	'menu' => $menu,
	'articles' => $articles,
	'footer_links' => $footer_links,
));</code></pre>
							</td>
						</tr>
					</tbody>
				</table>
			</article>

			<article>
				<h4 class="method" id="method_forge">forge($file = null, $data = null, $filter = null)</h4>
				<p>The <strong>forge</strong> method returns a new View object.</p>
				<table class="method">
					<tbody>
						<tr>
							<th>Static</th>
							<td>Yes</td>
						</tr>
						<tr>
							<th>Parameters</th>
							<td>
								<table class="parameters">
									<tr>
										<th>Param</th>
										<th>Default</th>
										<th class="description">Description</th>
									</tr>
									<tr>
										<th><kbd>$file</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">the view filename, if not supplied you must supply it later through <em>set_filename</em> or supply it in <em>render</em>. View files should be relative to the <em>app/views</em> directory and be supplied without the <strong>.php</strong> file extension.</td>
									</tr>
									<tr>
										<th><kbd>$data</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">array of values</td>
									</tr>
									<tr>
										<th><kbd>$filter</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">tet to <em>true</em> or <em>false</em> to set auto encoding, defaults to main config setting (app/config/config.php)</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<th>Returns</th>
							<td>a new <em>View</em> object</td>
						</tr>
						<tr>
							<th>Example</th>
							<td>
								<pre class="php"><code>// Will create a View object for APPPATH/
$view = View::forge('path/to/view', array(
	'menu' => $menu,
	'articles' => $articles,
	'footer_links' => $footer_links,
));</code></pre>
							</td>
						</tr>
					</tbody>
				</table>
			</article>

			<article>
				<h4 class="method" id="method_auto_encode">auto_filter($filter = true)</h4>
				<p>The <strong>auto_filter</strong> method sets whether to encode the data or not on a View instance.</p>
				<table class="method">
					<tbody>
						<tr>
							<th>Static</th>
							<td>No</td>
						</tr>
						<tr>
							<th>Parameters</th>
							<td>
								<table class="parameters">
									<tr>
										<th>Param</th>
										<th>Default</th>
										<th class="description">Description</th>
									</tr>
									<tr>
										<th><kbd>$filter</kbd></th>
										<td><pre class="php"><code>true</code></pre></td>
										<td class="description">whether to encode the data or not on a View instance</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<th>Returns</th>
							<td>Current View object</td>
						</tr>
						<tr>
							<th>Example</th>
							<td>
								<pre class="php"><code>$view = View::forge('path/to/view', array(
	'menu' => $menu,
	'articles' => $articles,
	'footer_links' => $footer_links,
));

$view->auto_filter();

// or set it to false

$view->auto_filter(false);

// or chain it

$view = View::forge('path/to/view', array(
	'menu' => $menu,
	'articles' => $articles,
	'footer_links' => $footer_links,
))->auto_filter();</code></pre>
							</td>
						</tr>
					</tbody>
				</table>
			</article>

			<article>
				<h4 class="method" id="method_set_filename">set_filename($file)</h4>
				<p>The <strong>set_filename</strong> method allows you to set or change the view filename.</p>
				<table class="method">
					<tbody>
						<tr>
							<th>Static</th>
							<td>No</td>
						</tr>
						<tr>
							<th>Parameters</th>
							<td>
								<table class="parameters">
									<tr>
										<th>Param</th>
										<th>Default</th>
										<th class="description">Description</th>
									</tr>
									<tr>
										<th><kbd>$file</kbd></th>
										<td><em>required</em></td>
										<td class="description">the view filename, view files should be relative to the <em>app/views</em> directory and be supplied without the <strong>.php</strong> extension.</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<th>Returns</th>
							<td>Current View object</td>
						</tr>
						<tr>
							<th>Example</th>
							<td>
								<pre class="php"><code>$view = new View();

$view->set_filename('path/to/view');</code></pre>
							</td>
						</tr>
					</tbody>
				</table>
			</article>

			<article>
				<h4 class="method" id="method_get">get($key = null, $default = null)</h4>
				<p>The <strong>get</strong> method retrieves one or all variables set on a view.</p>
				<table class="method">
					<tbody>
						<tr>
							<th>Static</th>
							<td>No</td>
						</tr>
						<tr>
							<th>Parameters</th>
							<td>
								<table class="parameters">
									<tr>
										<th>Param</th>
										<th>Default</th>
										<th class="description">Description</th>
									</tr>
									<tr>
										<th><kbd>$key</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">variable name</td>
									</tr>
									<tr>
										<th><kbd>$default</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">default value to return if the variable isn't set</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<th>Returns</th>
							<td>mixed</td>
						</tr>
						<tr>
							<th>Example</th>
							<td>
								<pre class="php"><code>// create a view and set some data
$view = new View;
$view->set(array('field1' =&gt; 'value1', 'field2' =&gt; 'value2');

// get a single value
$field1 = $view->get('field1');

// get a single value, set a default if the field does not exist
$field3 = $view->get('field3', 'value3');

// get all values
$fields = $view->get();</code></pre>
							</td>
						</tr>
					</tbody>
				</table>
			</article>

			<article>
				<h4 class="method" id="method_set">set($key, $value = null, $filter = null)</h4>
				<p>The <strong>set</strong> method assigns a variable to a view.</p>
				<table class="method">
					<tbody>
						<tr>
							<th>Static</th>
							<td>No</td>
						</tr>
						<tr>
							<th>Parameters</th>
							<td>
								<table class="parameters">
									<tr>
										<th>Param</th>
										<th>Default</th>
										<th class="description">Description</th>
									</tr>
									<tr>
										<th><kbd>$key</kbd></th>
										<td><em>required</em></td>
										<td class="description">variable name or array of variables</td>
									</tr>
									<tr>
										<th><kbd>$value</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">the value</td>
									</tr>
									<tr>
										<th><kbd>$filter</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">set to <em>true</em> or <em>false</em> to encoding, defaults to main auto encoding setting</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<th>Returns</th>
							<td>Current View object</td>
						</tr>
						<tr>
							<th>Example</th>
							<td>
								<pre class="php"><code>$view = new View;
$view->set('users', $users, false);

// or set an array

$view->set(array(
	'users' => $users,
	'articles' => $articles,
), null, true);

// If you need HTML / Javascript passed you need to set the last param to false
// when output encoding is enabled.
$view->set('example', '&lt;h1&gt;Heading&lt;/h1&gt;', false);</code></pre>
							</td>
						</tr>
					</tbody>
				</table>
			</article>

			<article>
				<h4 class="method" id="method_set_safe">set_safe($key, $value = null)</h4>
				<p>The same as <code>set()</code>, except this defaults to not-encoding the variable on output.</p>
				<table class="method">
					<tbody>
						<tr>
							<th>Static</th>
							<td>No</td>
						</tr>
						<tr>
							<th>Parameters</th>
							<td>
								<table class="parameters">
									<tr>
										<th>Param</th>
										<th>Default</th>
										<th class="description">Description</th>
									</tr>
									<tr>
										<th><kbd>$key</kbd></th>
										<td><em>required</em></td>
										<td class="description">variable name or array of variables</td>
									</tr>
									<tr>
										<th><kbd>$value</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">the value</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<th>Returns</th>
							<td>Current View object</td>
						</tr>
						<tr>
							<th>Example</th>
							<td>
								<pre class="php"><code>$view = new View;
$view->set_safe('users', $users);

// or set an array

$view->set_safe(array(
	'users' => $users,
	'articles' => $articles,
), null);</code></pre>
							</td>
						</tr>
					</tbody>
				</table>
			</article>

			<article>
				<h4 class="method" id="method_set_global">set_global($key, $value = null, $filter = null)</h4>
				<p>The <strong>set_global</strong> method sets a variable accessible for all views.</p>
				<table class="method">
					<tbody>
						<tr>
							<th>Static</th>
							<td>Yes</td>
						</tr>
						<tr>
							<th>Parameters</th>
							<td>
								<table class="parameters">
									<tr>
										<th>Param</th>
										<th>Default</th>
										<th class="description">Description</th>
									</tr>
									<tr>
										<th><kbd>$key</kbd></th>
										<td><em>required</em></td>
										<td class="description">variable name or array of variables</td>
									</tr>
									<tr>
										<th><kbd>$value</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">the value</td>
									</tr>
									<tr>
										<th><kbd>$filter</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">set to <em>true</em> or <em>false</em> to encoding, defaults to main auto encoding setting</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<th>Returns</th>
							<td><em>Void</em></td>
						</tr>
						<tr>
							<th>Example</th>
							<td>
								<pre class="php"><code>View::set_global('users', $users, false);

// or set an array

View::set_global(array(
	'users' => $users,
	'articles' => $articles,
), null, true);</code></pre>
							</td>
						</tr>
					</tbody>
				</table>
			</article>

			<article>
				<h4 class="method" id="method_bind">bind($key, $value = null)</h4>
				<p>
					Assigns a value by reference. The benefit of binding is that values can be altered without re-setting
					them. It is also possible to bind variables before they have values. Assigned values will be available
					as a variable within the view file.
				</p>
				<p class="note">Please note: these cannot be cleaned by output encoding and should thus be considered unsafe.</p>
				<table class="method">
					<tbody>
						<tr>
							<th>Static</th>
							<td>No</td>
						</tr>
						<tr>
							<th>Parameters</th>
							<td>
								<table class="parameters">
									<tr>
										<th>Param</th>
										<th>Default</th>
										<th class="description">Description</th>
									</tr>
									<tr>
										<th><kbd>$key</kbd></th>
										<td><em>required</em></td>
										<td class="description">variable name or array of variables</td>
									</tr>
									<tr>
										<th><kbd>$value</kbd></th>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">the value</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<th>Returns</th>
							<td>Current View object</td>
						</tr>
						<tr>
							<th>Example</th>
							<td>
								<pre class="php"><code>$view = new View;
$view->bind('users', $users, false);

// or set an array

$view->bind(array(
	'users' => $users,
	'articles' => $articles,
), null, true);</code></pre>
							</td>
						</tr>
					</tbody>
				</table>
			</article>

			<article>
				<h4 class="method" id="method_bind_global">bind_global($key, $value = null)</h4>
				<p>The <strong>bind_global</strong> method assigns a global variable by reference accessible for all views.</p>
				<p class="note">Please note: these cannot be cleaned by output encoding and should thus be considered unsafe.</p>
				<table class="method">
					<tbody>
						<tr>
							<th>Static</th>
							<td>Yes</td>
						</tr>
						<tr>
							<th>Parameters</th>
							<td>
								<table class="parameters">
									<tr>
										<th>Param</th>
										<th>Default</th>
										<th class="description">Description</th>
									</tr>
									<tr>
										<th><kbd>$key</kbd></th>
										<td><em>required</em></td>
										<td class="description">variable name</td>
									</tr>
									<tr>
										<th><kbd>$value</kbd></th>
										<td><em>required</em></td>
										<td class="description">the value</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<th>Returns</th>
							<td><em>Void</em></td>
						</tr>
						<tr>
							<th>Example</th>
							<td>
								<pre class="php"><code>View::bind_global('users', $users);</code></pre>
							</td>
						</tr>
					</tbody>
				</table>
			</article>

			<article>
				<h4 class="method" id="method_render">render($file = null)</h4>
				<p>
					The <strong>render</strong> method renders the view object to a string.
					Global and local data are merged and extracted to create local variables within the view file.
				</p>
				<table class="method">
					<tbody>
						<tr>
							<th>Static</th>
							<td>No</td>
						</tr>
						<tr>
							<th>Parameters</th>
							<td>
								<table class="parameters">
									<tr>
										<th>Param</th>
										<th>Type</th>
										<th>Default</th>
										<th class="description">Description</th>
									</tr>
									<tr>
										<th><kbd>$file</kbd></th>
										<td><em>string</em></td>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">the view filename without the extension</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<th>Returns</th>
							<td><strong>the rendered view file</strong></td>
						</tr>
						<tr>
							<th>Example</th>
							<td>
								<pre class="php"><code>$html = View::forge()->render('path/to/view');

// or

$html = View::forge('path/to/view')->render();

// or

$html = View::forge()->set_filename('path/to/view')->render();</code></pre>
							</td>
						</tr>
					</tbody>
				</table>
			</article>

			<h3 id="procedural_helpers">Procedural helpers</h3>

			<article>
				<h4 id="function_render" class="method" data-class="">render($view, $data = array(), $auto_filter = null)</h4>
				<p>The <strong>render</strong> function is an alias for <a href="#method_render">View::render</a>.</p>
				<table class="method">
					<tbody>
						<tr>
							<th>Parameters</th>
							<td>
								<table class="parameters">
									<tr>
										<th>Param</th>
										<th>Type</th>
										<th>Default</th>
										<th class="description">Description</th>
									</tr>
									<tr>
										<th><kbd>$view</kbd></th>
										<td><em>string</em></td>
										<td><em>required</em></td>
										<td class="description">the view filename without the extension</td>
									</tr>
									<tr>
										<th><kbd>$data</kbd></th>
										<td><em>array</em></td>
										<td><pre class="php"><code>array()</code></pre></td>
										<td class="description">an array of data to be passed to the view</td>
									</tr>
									<tr>
										<th><kbd>$auto_filter</kbd></th>
										<td><em>bool</em></td>
										<td><pre class="php"><code>null</code></pre></td>
										<td class="description">whether to filter the data or not</td>
									</tr>
								</table>
							</td>
						</tr>
						<tr>
							<th>Returns</th>
							<td><strong>string, the result from <a href="#method_render">View::render</a></strong></td>
						</tr>
						<tr>
							<th>Example</th>
							<td>
								<pre class="php"><code>$html = render('path/to/view', $data_array);</code></pre>
							</td>
						</tr>
					</tbody>
				</table>
			</article>

		</div>

		<footer>
			<p>
				&copy; FuelPHP Development Team 2010-2013 - <a href="http://fuelphp.com">FuelPHP</a> is released under the MIT license.
			</p>
		</footer>
	</div>
</body>
</html>
